package cn.px.dao.dto.store;

import cn.px.common.bean.BaseDTO;
import cn.px.common.validation.group.UpdateGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Description 备件退库登记单DTO
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class SpareBackFormDTO extends BaseDTO implements Serializable {

    /**
     * 主键
     */
    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
    private String id;
    /**
     * 退库单号
     */
    private String pickNo;
    /**
     * 退库类型:1-质量不合格 2-闲置
     */
    private Integer type;
    /**
     * 退货人id
     */
    private String pickUserId;
    /**
     * 退货人名称
     */
    private String pickUserName;
    /**
     * 维修单id
     */
    private String repairId;
    /**
     * 维修单号
     */
    private String repaireNo;
    /**
     * 领用说明
     */
    private String reason;
    /**
     * 备注
     */
    private String remark;
    /**
     * 状态:1-待入库 2-已入库
     * (可以打印拿着去仓库，让仓库进行出库了，如果有的数量仓库不足，仓库可以分批次给出库，关联领用单，然后填写此次出库的每个备件数量，下次，可以再填写一个出库单)
     */
    private Integer status;
    /**
     * 总价
     */
    private BigDecimal totalPrice;
    /**
     * 仓库id
     */
    private String storeId;
    /**
     * 创建人
     */
    private String createdUserId;
    /**
     * 创建人名称
     */
    private String createdUserName;
    /**
     * 更新人
     */
    private String updateUserId;
    /**
     * 更新人名称
     */
    private String updateUserName;
    /**
     * 创建日期
     */
    private LocalDateTime createdTime;
    /**
     * 创建日期开始
     */
    private LocalDateTime createdTimeStart;
    /**
     * 创建日期结束
     */
    private LocalDateTime createdTimeEnd;
    /**
     * 更新日期
     */
    private LocalDateTime updateTime;
    /**
     * 更新日期开始
     */
    private LocalDateTime updateTimeStart;
    /**
     * 更新日期结束
     */
    private LocalDateTime updateTimeEnd;
    /**
     * 关键字
     */
    private String keyword;
    /**
     * 领用详情
     */
    private List<SpareBackDetailDTO> detailList;

}
